<?php
declare (strict_types=1);

namespace app\job\queue;

use think\facade\Log;
use think\queue\Job;

class ConsumeQueue extends BaseJob
{
    public function fire(Job $job, $data)
    {
        try {
            // 处理业务逻辑
            // ...
            echo $data["abc"] . "ssssssssssssssssssssssssssss" . PHP_EOL;
            // 如果业务处理成功，删除队列任务
            $job->delete();
        } catch (\Exception $e) {
            // 消息队列执行失败
            // 获取消息队列已经重试了几遍
            $attempts = $job->attempts();
            echo "重试" . $attempts;
            if ($attempts >= 2) {
                // 重新发布，参数 delay 是延时发布的时间
                $job->delete($data);
            }
        }
        return true;
    }
}
